package com.lagou.dao;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;

import java.util.List;
import java.util.Map;

/**
 * 添加了@Mapper注解之后这个接口在编译时会生成相应的实现类
 *
 * 需要注意的是：这个接口中不可以定义同名的方法，因为会生成相同的id
 * 也就是说这个接口是不支持重载的
 */

@Mapper
@Component
public interface NovelDao  {

    /**
     * 新增小说
     * */
    @Insert("INSERT INTO novel(id,title,author,pic,content) VALUES(#{id},#{title},#{author},#{pic},#{content})")
    int insertNovel(@Param("id") long id,@Param("title") String title, @Param("author") String author,
                    @Param("pic") String pic,
                @Param("content") String content);



    /**
     * 根据ID 查询小说
     * */
    @Select({"<script>"+
            "select * from novel n where n.id in " +
                    "<foreach collection='novelIds' item='id' open='(' separator = ',' close=')'>#{id}</foreach>"
            +"</script>"})
    List<Map> findNovelByIds(@Param("novelIds") List<Long> novelIds);

}
